package com.ecommerce.dal.service;


import java.util.List;


import com.ecommerce.dal.entity.Item;
import com.ecommerce.dal.entity.ItemDetail;

public interface IItemManagerService {
	/**
	 * @return Item Object
	 */
	public Item retrieveItem(long itemId);
	
	public void saveItem(Item item) ;
	/**
	 * @param ItemDetail Object
	 */
	public void saveItemDetails(ItemDetail itemDetails);
	/**
	 * @return List of ItemDetail Object
	 */
	public List<ItemDetail> retrieveItemDetails(long itemId);
	/**
	 * @param Category Object
	 * @return Item Object
	 */
	public List<Item> retrieveItemByCategory(long categoryId);
	
	/**
	 * @param Long clientID
	 * @return List of all Items that belong to specific Client 
	 */
	public List<Item> retrieveItemByClient(long clientId);
	/**
	 * @param String clientUsername
	 * @return List of all Items that belong to specific Client
	 */
	public List<Item> retrieveItemByClient(String clientUsername);
	
	/**
	 * @param Long companyID
	 * @return List of all Items that belong to specific Company 
	 */
	public List<Item> retrieveItemByCompany(long companyId);
	
	/**
	 * @param Double minPrice
	 * @param Double maxPrice
	 * @return List of valid Items
	 */
	public List<Item> retrieveItemByPrice(Double minPrice , Double maxPrice);
	/**
	 * @param Double minDiscount
	 * @param Double maxDiscount
	 * @return List of Valid Items
	 */
	public List<Item> retrieveItemByDiscount(Double minDiscount , Double maxDiscount);
	/**
	 * @return List of Items that has discount
	 */
	public List<Item> retrieveDiscountedItems();
	
	//void saveItem(Item item);
	void updateItem(Item item);
	void deleteItem(Item item);
	

}
